package com.cjkj.agent.mapper;

import com.cjkj.agent.domain.TAgentAreaInfo;
import com.cjkj.agent.domain.vo.AgentAreaVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 代理商代理区域信息Mapper接口
 * 
 * @author cjkj
 * @date 2025-10-11
 */
public interface TAgentAreaInfoMapper 
{
    /**
     * 查询代理商代理区域信息列表
     * 
     * @param agentId 代理商Id
     * @return 代理商代理区域信息集合
     */
    List<AgentAreaVo> selectAgentAreaDataByAgentId(String agentId);

    /**
     * 查询代理商需要删除的代理区域
     * @param agentId 代理商ID
     * @param agentAreaVos 新设置的代理区域
     */
    List<AgentAreaVo> selectNeedDeleteDataByAgentId(@Param("agentId") String agentId, @Param("areas") List<AgentAreaVo> agentAreaVos);

    /**
     * 根据区域查询代理商代理区域信息
     * @param agentId 代理商ID
     * @param province 省份
     * @param city 城市
     * @param area 区域
     */
    TAgentAreaInfo selectByAreas(@Param("agentId") String agentId,
                                 @Param("province") String province,
                                 @Param("city") String city,
                                 @Param("area") String area);

    /**
     * 新增代理商代理区域信息
     * 
     * @param tAgentAreaInfo 代理商代理区域信息
     * @return 结果
     */
    int insertTAgentAreaInfo(TAgentAreaInfo tAgentAreaInfo);

    /**
     * 批量删除代理商代理区域信息
     * 
     * @param infoIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteTAgentAreaInfoByInfoIds(Long[] infoIds);
}
